Add a test for opacity render nodes
authorMatthias Clasen <mclasen@redhat.com>
Tue, 17 Oct 2017 17:22:27 +0000 (01:22 +0800)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 18 Oct 2017 21:45:43 +0000 (23:45 +0200)
This test currently fails with the Vulkan renderer, despite
having its own reference image.

testsuite/gsk/meson.build
testsuite/gsk/opacity.node [new file with mode: 0644]
testsuite/gsk/opacity.png [new file with mode: 0644]
testsuite/gsk/test-render-nodes.c

index 8e4e39754cd0d8a177ad63bd80b0f5a5098d6acc..1bba9332f842b182cef5b48eb383cf40fe8b9cc6 100644 (file)
@@ -65,6 +65,9 @@ test_data = [
   'transform.node',
   'transform.png',
   'transform.vulkan.png',
+  'opacity.node',
+  'opacity.png',
+  'opacity.vulkan.png',
 ]
 
 if get_option('install-tests')
diff --git a/testsuite/gsk/opacity.node b/testsuite/gsk/opacity.node
new file mode 100644 (file)
index 0000000..6f0fd72
Binary files /dev/null and b/testsuite/gsk/opacity.node differ
diff --git a/testsuite/gsk/opacity.png b/testsuite/gsk/opacity.png
new file mode 100644 (file)
index 0000000..78fef46
Binary files /dev/null and b/testsuite/gsk/opacity.png differ
index 53fc98eb9a7721a6fd9d1c521a58efff8e91c215..29119aec9627e019e9befed0eefd02308b0e5749 100644 (file)
@@ -411,6 +411,36 @@ transform (void)
   return container;
 }
 
+static GskRenderNode *
+opacity (void)
+{
+  GskRenderNode *child;
+  GskRenderNode *node;
+  GskRenderNode *nodes[5];
+  GskRenderNode *container;
+  graphene_matrix_t matrix;
+  int i;
+
+  child = ducky ();
+
+  for (i = 0; i < 5; i++)
+    {
+      node = gsk_opacity_node_new (child, i / 4.0);
+      graphene_matrix_init_translate (&matrix, &(const graphene_point3d_t) { i* 210, 0, 0 });
+      nodes[i] = gsk_transform_node_new (node, &matrix);
+      gsk_render_node_unref (node);
+    }
+
+  gsk_render_node_unref (child);
+
+  container = gsk_container_node_new (nodes, 5);
+
+  for (i = 0; i < 5; i++)
+    gsk_render_node_unref (nodes[i]);
+
+  return container;
+}
+
 static const struct {
   const char *name;
   GskRenderNode * (* func) (void);
@@ -423,6 +453,7 @@ static const struct {
   { "blendmodes.node", blendmodes },
   { "cross-fades.node", cross_fades },
   { "transform.node", transform },
+  { "opacity.node", opacity },
 };
 
 /*** test setup ***/